// 函数重载：函数名字相同，函数的参数以及个数不同
(() => {
    // 定义一个函数
    // 需求：我们有一个add函数，它可以接收2个string类型的参数进行拼接，也可以接收2个number类型的参数进行相加 

    // 函数声明
    function add(x: string | number, y: string | number): string | number {
        if (typeof x === 'string' && typeof y === 'string') {
            return x + y // 字符串拼接
        } else if (typeof x === 'number' && y === 'number') {
            return x + y // 数字相加
        }
    }

    console.log(add('ad', 'c'));
    console.log(add(10, 20));
    console.log(add(100, 'c'));

})()